<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>击鼓传花</title>
    </head>
    <script src="./js/queue.js"></script>
    <body>
        <script>
            /**
             *  在这个游戏中，孩子们围成一个圈，把花尽快地传递给旁边的人。某一个时刻传花停止，这个时候花在谁的手里，谁就推出圆圈、结束游戏。
             *  重复这个过程，直到只剩下一个孩子（胜利者）。
             * */
            function hotPotato(elementsList, num) {
                const queue = new Queue();
                const elimitatedList = [];

                for (let i = 0; i < elementsList.length; i++) {
                    queue.enqueue(elementsList[i]);
                }

                while (queue.size() > 1) {
                    for (let i = 0; i < num; i++) {
                        queue.enqueue(queue.dequeue());
                    }
                    elimitatedList.push(queue.dequeue());
                }

                return {
                    eliminated: elimitatedList,
                    winner: queue.dequeue(), // 胜利者
                };
            }

            const names = ["John", "Jack", "Camila", "Ingrid", "Carl"];
            const result = hotPotato(names, 7);

            result.eliminated.forEach((name) => {
                console.log(`${name}在击鼓传花游戏中被淘汰。`);
            });
            console.log(`胜利者：${result.winner}`);
        </script>
    </body>
</html>
